// Copyright Epic Games, Inc. All Rights Reserved.

#include "UI/Foundation/LyraLoadingScreenSubsystem.h"

#include "Blueprint/UserWidget.h"

#include UE_INLINE_GENERATED_CPP_BY_NAME(LyraLoadingScreenSubsystem)

class UUserWidget;

//////////////////////////////////////////////////////////////////////
// ULyraLoadingScreenSubsystem

/**
 * 构造函数
 */
ULyraLoadingScreenSubsystem::ULyraLoadingScreenSubsystem()
{
}

/**
 * 设置加载屏幕内容控件类
 * @param NewWidgetClass 新的控件类
 */
void ULyraLoadingScreenSubsystem::SetLoadingScreenContentWidget(TSubclassOf<UUserWidget> NewWidgetClass)
{
	// 如果加载屏幕控件类与新的不同
	if (LoadingScreenWidgetClass != NewWidgetClass)
	{
		// 更新加载屏幕控件类
		LoadingScreenWidgetClass = NewWidgetClass;

		// 广播加载屏幕控件改变事件
		OnLoadingScreenWidgetChanged.Broadcast(LoadingScreenWidgetClass);
	}
}

/**
 * 获取加载屏幕内容控件类
 * @return 当前设置的加载屏幕控件类
 */
TSubclassOf<UUserWidget> ULyraLoadingScreenSubsystem::GetLoadingScreenContentWidget() const
{
	// 返回加载屏幕控件类
	return LoadingScreenWidgetClass;
}